# encoding: utf-8
from __future__ import absolute_import, unicode_literals


class BasePath(object):
    accessory = {
        "No accessory":
            '',
        "Headphones":
            '<g>'
            '  <path'
            '    d="M66.758,92.468c.18,1.871.749,3.351-1.24,3.52S62.83,94.775,62.65,92.9s.236-3.523,2.221-3.69S66.581,90.6,66.758,92.468Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M123.444,92.468c-.179,1.871-.749,3.351,1.24,3.52s2.69-1.213,2.869-3.085-.236-3.523-2.222-3.69S123.623,90.6,123.444,92.468Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M95.144,163.351h-.991v-9.435c-.005-4.948-4.21-8.315-9.534-12.577-4.45-3.562-9.494-7.6-13.4-13.6-7.608-11.71-7.363-22.561-6.46-32.671l.987.087c-.887,9.938-1.13,20.6,6.305,32.043,3.815,5.871,8.792,9.855,13.184,13.371,5.313,4.252,9.9,7.926,9.905,13.35Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M96.166,163.351h-.991v-9.435c0-5.426,4.591-9.1,9.9-13.352,4.393-3.515,9.37-7.5,13.185-13.37,7.429-11.436,7.188-22.1,6.306-32.043l.987-.087c.9,10.115,1.14,20.969-6.461,32.67-3.9,6.005-8.946,10.042-13.4,13.6-5.324,4.263-9.53,7.629-9.533,12.578Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '</g>'
    }
    clothes = {}
    eyes = {
        "Open":
            '<g>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M85.831,89.846a.825.825,0,0,1,0,1.128c-.907.969-2.976,2.848-5.384,2.848-2.437,0-4.269-2.044-5.03-3.061a.88.88,0,0,1,.036-1.1A7,7,0,0,1,80.447,87C82.855,87,84.923,88.876,85.831,89.846Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="gradientId"'
            '    d="M77.042,90.538A3.416,3.416,0,1,0,80.32,87.1,3.372,3.372,0,0,0,77.042,90.538Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#1d1d1b"'
            '    d="M80.207,88.558A2.009,2.009,0,1,1,78.524,90.8,1.971,1.971,0,0,1,80.207,88.558Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M79.262,88.284a.983.983,0,1,1-.866,1.1A.993.993,0,0,1,79.262,88.284Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M115.374,89.882a.827.827,0,0,1,0,1.13c-.907.969-2.976,2.848-5.384,2.848-2.437,0-4.269-2.045-5.03-3.062A.881.881,0,0,1,105,89.7a7,7,0,0,1,4.994-2.665C112.4,87.034,114.466,88.912,115.374,89.882Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="gradientId"'
            '    d="M106.585,90.575a3.416,3.416,0,1,0,3.278-3.434A3.372,3.372,0,0,0,106.585,90.575Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#1d1d1b"'
            '    d="M109.75,88.594a2.01,2.01,0,1,1-1.684,2.237A1.974,1.974,0,0,1,109.75,88.594Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M108.805,88.321a.983.983,0,1,1-.866,1.1A.992.992,0,0,1,108.805,88.321Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
        "Wink left":
            '<g>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M85.831,89.846a.825.825,0,0,1,0,1.128c-.907.969-2.976,2.848-5.384,2.848-2.437,0-4.269-2.044-5.03-3.061a.88.88,0,0,1,.036-1.1A7,7,0,0,1,80.447,87C82.855,87,84.923,88.876,85.831,89.846Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="gradientId"'
            '    d="M77.042,90.538A3.416,3.416,0,1,0,80.32,87.1,3.372,3.372,0,0,0,77.042,90.538Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#1d1d1b"'
            '    d="M80.207,88.558A2.009,2.009,0,1,1,78.524,90.8,1.971,1.971,0,0,1,80.207,88.558Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M79.262,88.284a.983.983,0,1,1-.866,1.1A.993.993,0,0,1,79.262,88.284Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#875026"'
            '    d="M105.736,92.973a1,1,0,0,1-.9-1.444,6.205,6.205,0,0,1,10.546-.287,1,1,0,0,1-1.728,1,4,4,0,0,0-3.467-1.8,3.907,3.907,0,0,0-3.559,1.969A1,1,0,0,1,105.736,92.973Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
        "Wink right":
            '<g>'
            '  <path'
            '    fill="#875026"'
            '    d="M76.736,92.973a1,1,0,0,1-.9-1.444,6.205,6.205,0,0,1,10.546-.287,1,1,0,0,1-1.728,1,4,4,0,0,0-3.467-1.8,3.907,3.907,0,0,0-3.559,1.969A1,1,0,0,1,76.736,92.973Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M115.374,89.882a.827.827,0,0,1,0,1.13c-.907.969-2.976,2.848-5.384,2.848-2.437,0-4.269-2.045-5.03-3.062A.881.881,0,0,1,105,89.7a7,7,0,0,1,4.994-2.665C112.4,87.034,114.466,88.912,115.374,89.882Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="gradientId"'
            '    d="M106.585,90.575a3.416,3.416,0,1,0,3.278-3.434A3.372,3.372,0,0,0,106.585,90.575Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#1d1d1b"'
            '    d="M109.75,88.594a2.01,2.01,0,1,1-1.684,2.237A1.974,1.974,0,0,1,109.75,88.594Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#ffffff"'
            '    d="M108.805,88.321a.983.983,0,1,1-.866,1.1A.992.992,0,0,1,108.805,88.321Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
        "Happy":
            '<g>'
            '  <path'
            '    fill="#875026"'
            '    d="M76.736,92.973a1,1,0,0,1-.9-1.444,6.205,6.205,0,0,1,10.546-.287,1,1,0,0,1-1.728,1,4,4,0,0,0-3.467-1.8,3.907,3.907,0,0,0-3.559,1.969A1,1,0,0,1,76.736,92.973Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="#875026"'
            '    d="M105.736,92.973a1,1,0,0,1-.9-1.444,6.205,6.205,0,0,1,10.546-.287,1,1,0,0,1-1.728,1,4,4,0,0,0-3.467-1.8,3.907,3.907,0,0,0-3.559,1.969A1,1,0,0,1,105.736,92.973Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
    }
    facial_hair = {}
    glasses = {
        "No glasses": '',
        "Big":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M123.722,81.724c-.022,0-20.038-4.586-25.347,1.889a11.588,11.588,0,0,0-.647,2.076H91.9a11.546,11.546,0,0,0-.646-2.076c-5.31-6.475-25.325-1.884-25.346-1.889,0,0-.06,3.25.06,4.334.166,1.486,2.489,3.492,2.635,4.711.721,5.9,4.668,10.251,12.98,10.045,8.329-.433,10.275-6.462,10.619-10.255a16.138,16.138,0,0,0,.032-2.472,7.091,7.091,0,0,1,2.564-.462h.036a7.087,7.087,0,0,1,2.564.462,16.4,16.4,0,0,0,.033,2.472c.343,3.793,2.289,9.822,10.619,10.255,8.312.206,12.26-4.143,12.98-10.045.147-1.219,2.471-3.225,2.635-4.711C123.78,84.974,123.722,81.724,123.722,81.724ZM90.3,90.857c-.431,5.287-3.675,8.383-8.925,8.637-.532.028-1.05.031-1.542.013-8.271-.018-9.686-7.253-9.85-11.834a4.886,4.886,0,0,1,4.409-5.124c1.517-.149,3.225-.149,5.2-.149,6.181,0,8.871,1.476,9.588,2.657A10.512,10.512,0,0,1,90.3,90.857Zm19.488,8.65c-.492.018-1.01.015-1.543-.013-5.248-.254-8.492-3.35-8.922-8.637a10.486,10.486,0,0,1,1.119-5.8c.715-1.181,3.406-2.657,9.588-2.657,1.975,0,3.682,0,5.2.149a4.887,4.887,0,0,1,4.41,5.124C119.477,92.254,118.061,99.489,109.79,99.507Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
        "Sunglasses":
            '<g>'
            '  <path'
            '    fill="rgba(0, 0, 0, .8)"'
            '    d="M81.81,83.033c-3.251-.2-8.16-.1-10.112,1.251s-1.252,5.457-.851,7.359,1.214,5.06,2.887,6.058c1.9,1.134,5.673,1.752,8.827,1.351s5.256-1.6,6.507-3.955c1.013-1.9,2.5-7.459,1.5-9.361S84.263,83.183,81.81,83.033Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <ellipse fill="#ffffff" cx="45.362" cy="58.563" rx="1.685" ry="0.534"></ellipse>'
            '  <path'
            '    fill="{color}"'
            '    d="M100.933,82.582a19.632,19.632,0,0,1-5.557,1.394,19.632,19.632,0,0,1-5.557-1.394c-4.7-1.551-16.569-2.553-24.078-.15l.225,4.155a1.558,1.558,0,0,1,1.815,1.2c.45,1.5,1.5,7.693,3.41,10.112,2.376,3,7.492,3.119,10.952,2.97,4.659-.2,7.71-2.269,9.011-5.774s2.036-6.507,2.87-7.459a1.937,1.937,0,0,1,2.7,0c.834.952,1.568,3.955,2.87,7.459s4.352,5.574,9.011,5.774c3.46.149,8.576.033,10.952-2.97,1.914-2.419,2.96-8.611,3.41-10.112a1.558,1.558,0,0,1,1.815-1.2l.225-4.155C117.5,80.029,105.638,81.031,100.933,82.582Zm-33.808,1.8c0-.3.755-.534,1.686-.534s1.685.239,1.685.534-.754.534-1.685.534S67.125,84.679,67.125,84.385ZM89.068,95.1c-1.251,2.353-3.354,3.555-6.507,3.955s-6.925-.217-8.827-1.351c-1.673-1-2.487-4.155-2.887-6.058s-1.1-6.007.851-7.359,6.861-1.45,10.112-1.251c2.453.15,7.759.8,8.76,2.7S90.081,93.193,89.068,95.1Zm30.837-3.454c-.4,1.9-1.214,5.06-2.887,6.058-1.9,1.134-5.673,1.752-8.827,1.351s-5.256-1.6-6.507-3.955c-1.013-1.9-2.5-7.459-1.5-9.361s6.307-2.553,8.76-2.7c3.251-.2,8.16-.1,10.112,1.251S120.306,89.741,119.905,91.643Zm2.036-6.724c-.931,0-1.685-.24-1.685-.534s.754-.534,1.685-.534,1.686.239,1.686.534S122.872,84.919,121.941,84.919Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="rgba(0, 0, 0, .8)"'
            '    d="M119.054,84.284c-1.952-1.351-6.861-1.45-10.112-1.251-2.453.15-7.759.8-8.76,2.7s.489,7.457,1.5,9.361c1.251,2.353,3.354,3.555,6.507,3.955s6.925-.217,8.827-1.351c1.673-1,2.487-4.155,2.887-6.058S121.007,85.636,119.054,84.284Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <ellipse fill="#ffffff" cx="98.492" cy="58.563" rx="1.685" ry="0.534"></ellipse>'
            '</g>'
        ,
        "Oldschool":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M120.105,81.4c-2.6-.45-11.543-1.456-17.243-.407-5.544,1.022-5,2.361-4.943,2.87a6.209,6.209,0,0,0-6,0c.056-.509.591-1.848-4.954-2.87-5.7-1.049-14.715-.043-17.315.407A13.731,13.731,0,0,0,65.829,82.5v2.85a1.664,1.664,0,0,1,1.849.6c.674.842.86,1.575,1.669,1.877a21.623,21.623,0,0,0,.885,6.772,7.173,7.173,0,0,0,5.257,4.939,15.924,15.924,0,0,0,4.238.545,14.9,14.9,0,0,0,4.337-.6,8.661,8.661,0,0,0,5.7-6.2,21.768,21.768,0,0,0,.92-7.226.6.6,0,0,0,.617-.186h0l.026,0a1.126,1.126,0,0,0,.124-.132,5.538,5.538,0,0,1,6.935,0c.036.049,0,.094.039.132l-.07,0h0a.768.768,0,0,0,.714.186,22.091,22.091,0,0,0,.981,7.226,8.681,8.681,0,0,0,5.717,6.2,14.95,14.95,0,0,0,4.345.6,15.936,15.936,0,0,0,4.239-.545A7.168,7.168,0,0,0,119.6,94.6a21.587,21.587,0,0,0,.874-6.772c.808-.3.923-1.035,1.6-1.877a1.526,1.526,0,0,1,1.751-.6V82.5A12.154,12.154,0,0,0,120.105,81.4ZM68.736,84.014c-.938,0-1.7-.146-1.7-.327s.76-.326,1.7-.326,1.7.146,1.7.326S69.674,84.014,68.736,84.014Zm20.451,9.105a8.08,8.08,0,0,1-5.3,5.8,15.709,15.709,0,0,1-8.228.048A6.541,6.541,0,0,1,70.81,94.4a21.458,21.458,0,0,1-.822-7.067c.189-1.09.753-3.315,2.276-4.132,2.05-1.1,6.456-1.8,10.856-1.05s6.1,1.85,6.8,3.15c.025.046.051.091.078.133C90.333,86.653,90.123,89.866,89.187,93.119ZM119.039,94.4a6.54,6.54,0,0,1-4.847,4.561,15.712,15.712,0,0,1-8.229-.048,8.077,8.077,0,0,1-5.3-5.8c-.937-3.253-1.146-6.466-.813-7.683.026-.042.052-.087.077-.133.7-1.3,2.4-2.4,6.8-3.15s8.8-.05,10.855,1.05c1.524.817,2.087,3.042,2.276,4.132A21.432,21.432,0,0,1,119.039,94.4Zm2.075-10.388c-.938,0-1.7-.146-1.7-.327s.76-.326,1.7-.326,1.7.146,1.7.326S122.052,84.014,121.114,84.014Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
    }
    hair = {}
    head_shape = {}
    mouth = {
        "Normal":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M105.083,109.174c-.707-.438-1.326-.039-2.094.328-.078.041-.16.076-.238.115-1.82.152-4.607.231-7.41.229s-5.6-.077-7.418-.229c-.076-.04-.154-.074-.229-.115-.769-.367-1.388-.766-2.093-.328-.637.393-.293.91.283,1.34,5.781,4.306,12.742,4.433,18.914,0C105.384,110.093,105.718,109.567,105.083,109.174Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Wide":
            '<g>'
            '  <path'
            '    d="M103.688,109.118a.967.967,0,0,0-1.111-.461,42.683,42.683,0,0,1-14.909,0,.966.966,0,0,0-1.11.461,1.171,1.171,0,0,0,.021,1.02,10.224,10.224,0,0,0,8.517,5.51c.009,0,.018,0,.027,0s.018,0,.027,0a10.222,10.222,0,0,0,8.516-5.51A1.178,1.178,0,0,0,103.688,109.118Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"></path>'
            '  <path'
            '    d="M100.3,110.744a.66.66,0,0,0-.666-.213,33.168,33.168,0,0,1-8.946,0,.66.66,0,0,0-.666.213.432.432,0,0,0,.013.471,6.453,6.453,0,0,0,5.11,2.545l.017,0,.016,0a6.451,6.451,0,0,0,5.109-2.545A.432.432,0,0,0,100.3,110.744Z"'
            '    transform="translate(-23.449 -25.821)" fill="#efebe9"></path>'
            '</g>'
            ,
        "Smile":
            '<g>'
            '  <path'
            '    d="M105.026,107.844c-.749-.36-1.321.1-2.047.549a14.046,14.046,0,0,1-16.359,0c-.726-.448-1.3-.909-2.047-.549-.675.322-.4.881.139,1.362,6.262,5.605,13.725,5.773,20.175,0C105.423,108.725,105.7,108.166,105.026,107.844Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"></path>'
            '</g>'
            ,
        "Clever":
            '<g>'
            '  <path'
            '    d="M104.832,106.844c-.75-.359-1.322.1-2.047.55a16.638,16.638,0,0,1-15.207,1.635c-.8-.282-1.461-.611-2.117-.1-.59.46-.193.936.426,1.3,6.209,3.664,13.143,3.044,18.807-2.023C105.229,107.726,105.506,107.168,104.832,106.844Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"></path>'
            '</g>'
    }
    nose = {
        "Normal":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M99.744,101.563a.271.271,0,0,0,.1-.314.237.237,0,0,0-.268-.161,25.286,25.286,0,0,1-8.474.185.243.243,0,0,0-.26.173.272.272,0,0,0,.1.307,11.793,11.793,0,0,0,4.2,1.612C96.067,103.606,98.49,102.388,99.744,101.563Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
    }

    def get_accessory(self, random, **kwargs):
        return random.pickone_value_from_dict(self.accessory).format(**kwargs)

    def get_clothes(self, random, **kwargs):
        return random.pickone_value_from_dict(self.clothes).format(**kwargs)

    def get_eyes(self, random, **kwargs):
        path = """
<g>
<linearGradient
  id="gradientId"
  x1="72.34"
  y1="94.276"
  x2="79.169"
  y2="94.276"
  gradientTransform="matrix(0.999, -0.039, 0.039, 0.999, 1.102, -0.852)"
  gradientUnits="userSpaceOnUse"
>
  <stop offset="0" stop-color="{color}"></stop>
  <stop offset="1" stop-color="{secondaryColor}"></stop>
</linearGradient>
%s
</g> 
        """ % random.pickone_value_from_dict(self.eyes)
        if 'secondaryColor' not in kwargs:
            kwargs['secondaryColor'] = kwargs['color'].darken_than(15)
        return path.format(**kwargs)

    def get_facial_hair(self, random, **kwargs):
        if not self.facial_hair:
            return ''
        return random.pickone_value_from_dict(self.facial_hair).format(**kwargs)

    def get_glasses(self, random, **kwargs):
        if not self.glasses:
            return ''
        return random.pickone_value_from_dict(self.glasses).format(**kwargs)

    def get_hair(self, random, **kwargs):
        path = """
<g>
  %s
  <path
    d="M84.709,84.234a1.028,1.028,0,0,1-.4-.081c-3.463-1.446-7.742-.8-9.064-.054a1.035,1.035,0,1,1-1.022-1.8c1.908-1.083,6.883-1.726,10.884-.056a1.036,1.036,0,0,1-.4,1.992Z"
    transform="translate(-23.449 -25.821)"
    fill="{color}"
  ></path>
  <path
    d="M105.459,84.234a1.036,1.036,0,0,1-.4-1.992c4-1.67,8.976-1.028,10.886.056a1.035,1.035,0,1,1-1.021,1.8c-1.323-.75-5.605-1.393-9.067.055A1.037,1.037,0,0,1,105.459,84.234Z"
    transform="translate(-23.449 -25.821)"
    fill="{color}"
  ></path>
</g>
            """ % random.pickone_value_from_dict(self.hair)
        return path.format(**kwargs)

    def get_head_shape(self, random, **kwargs):
        if not self.head_shape:
            return ''
        return random.pickone_value_from_dict(self.head_shape).format(**kwargs)

    def get_mouth(self, random, **kwargs):
        if not self.mouth:
            return ''
        return random.pickone_value_from_dict(self.mouth).format(**kwargs)

    def get_nose(self, random, **kwargs):
        if not self.nose:
            return ''
        return random.pickone_value_from_dict(self.nose).format(**kwargs)


class MalePath(BasePath):
    clothes = {
        **BasePath.clothes,
        "Hoodie":
            '<g id="ae928e33-38f4-4e03-bca3-586351cb6598" data-name="Pink Jacket">'
            '  <path'
            '    d="M95.9,144.622s-12.667-3.3-18.322-6.674l9.309,21.61,18-.751,7.978-20.432C106.949,142,95.9,144.622,95.9,144.622Z"'
            '    transform="translate(-23.449 -25.821)" fill="{secondaryColor}"></path>'
            '  <path'
            '    d="M138.545,157.552c-6.051,2.76-17.109,4.52-29.539,5.26H80.8c-12.49-.74-23.689-2.5-29.97-5.26-.51-.22,2.8-8.4,3.851-11.91s5.139-4.2,5.139-4.2,15.73-3.1,18.14-4.129a.459.459,0,0,0,.071-.03l17.779,21.026,16.621-20.657c4.229,1.25,17.129,3.79,17.129,3.79s4.09.7,5.141,4.2S139.045,157.322,138.545,157.552Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '</g>'
        ,
        "T-shirt":
            '<g id="fd0b4506-3e2f-4926-9909-a72d2452468e" data-name="Red T-shirt">'
            '  <path'
            '    d="M138.518,157.289c-16.551,7.561-70.55,7.561-87.72,0-.511-.22,2.8-8.4,3.849-11.91a5.65,5.65,0,0,1,2.611-3.21c.88-.33,1.819-.67,2.8-1.04.019,0,.04-.01.059-.01,2.231-.45,15.03-3.009,17.651-4.009,3.769,6.509,10.049,11.3,18.179,11.3,7.63,0,13.53-4.659,17.16-10.819,4.811,1.3,16.42,3.59,16.42,3.59s.11.02.289.06a.036.036,0,0,0-.029.01s.57.191,1.43.49a.142.142,0,0,1,.06.02,5.934,5.934,0,0,1,3.391,3.62C135.717,148.889,139.018,157.059,138.518,157.289Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '  <path'
            '    d="M114.437,137.929c-4.25,7.44-10.95,11.83-18.49,11.83-7.9,0-15.149-4.64-19.529-12.229.569-.161,1.039-.3,1.35-.42.059-.021.11-.041.16-.061a1.3,1.3,0,0,0,.17-.08c.269-.15.549-.32.849-.51,3.891,6.77,10,10.61,17,10.61,6.4,0,12.08-3.58,15.84-9.87.341.12.79.25,1.32.39C113.508,137.7,113.947,137.809,114.437,137.929Z"'
            '    transform="translate(-23.449 -25.821)" fill="{secondaryColor}"></path>'
            '</g>'
        ,
        "V shirt":
            '<g id="b696b404-5880-4cf1-8b60-43e02b283e0d" data-name="Vrstva 42">'
            '  <path'
            '    d="M138.407,157.543c-6.05,2.76-17.109,4.52-29.539,5.26a240.921,240.921,0,0,1-28.21,0c-12.49-.74-23.69-2.5-29.97-5.26-.51-.22,2.8-8.4,3.85-11.91s5.14-4.2,5.14-4.2,10.83-2.14,15.9-3.45c3.012,3.067,12.8,6.621,17.26,6.621l3.35,15.1,3.36-15.1c4.32,0,12.37-3.221,15.149-6.33,5.4,1.319,14.72,3.159,14.72,3.159s4.09.7,5.141,4.2S138.907,157.313,138.407,157.543Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '</g>'
        ,
        "Formal":
            '<g id="b2d25f4f-be7e-49d4-aedc-a648cb9119cb" data-name="Olive Formal">'
            '  <path'
            '    d="M138.463,157.534c-6.051,2.76-17.11,4.521-29.54,5.26a241.359,241.359,0,0,1-28.21,0c-12.49-.739-23.69-2.5-29.97-5.26-.51-.22,2.8-8.4,3.85-11.91s5.14-4.2,5.14-4.2,10.83-2.14,15.9-3.449a18.152,18.152,0,0,0,2.241-.681c.029-.01.049-.021.07-.03.039-.02.069-.03.1-.05a1.912,1.912,0,0,0,.2-.12c5.631,3.509,10.74,6.12,16.81,6.12,5.62,0,11.05-2.521,16.481-5.84.209.08.479.17.809.26.63.19,1.46.4,2.41.63,5.4,1.32,14.719,3.16,14.719,3.16s4.09.7,5.141,4.2S138.963,157.305,138.463,157.534Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '  <polygon points="67.85 112.759 75.697 112.759 77.729 115.977 65.815 115.977 67.85 112.759" fill="#e2e2e2"></polygon>'
            '  <path d="M91.614,148.811l-3.486-7.819H102.1l-3.489,7.819A3.985,3.985,0,0,1,91.614,148.811Z"'
            '        transform="translate(-23.449 -25.821)" fill="{secondaryColor}"></path>'
            '  <path d="M101.294,163.114c-4.1.12-8.26.12-12.371.02l2.691-11.46c2.25-2.81,4.869-2.54,6.989,0Z"'
            '        transform="translate(-23.449 -25.821)" fill="{secondaryColor}"></path>'
            '  <path'
            '    d="M81.728,128.773a18.964,18.964,0,0,0,10.38,9.637c-.537.826-5.771,6.631-7.5,13.481-3.482-3.3-10.3-11.386-10.3-13.311C75.377,135,79.316,130.148,81.728,128.773Z"'
            '    transform="translate(-23.449 -25.821)" fill="#fff"></path>'
            '  <path'
            '    d="M108.613,128.773a16.078,16.078,0,0,1-10.356,9.637,31.58,31.58,0,0,1,7.5,13.481c3.481-3.3,10.547-11.386,10.547-13.311C115.236,135,111.025,130.148,108.613,128.773Z"'
            '    transform="translate(-23.449 -25.821)" fill="#fff"></path>'
            '</g>'
        ,
        "Pullover":
            '<g id="f511194a-89ff-4d5f-beeb-d361e69a8096" data-name="Blue Pullover">'
            '  <path'
            '    d="M138.573,157.351c-6.051,2.76-17.11,4.52-29.539,5.26-2.5.15-5.05.26-7.63.32-4.1.119-8.26.119-12.37.02-2.781-.06-5.521-.18-8.21-.34-12.491-.74-23.691-2.5-29.971-5.26-.51-.221,2.8-8.4,3.85-11.91s5.14-4.2,5.14-4.2,10.16-2.01,15.41-3.32c4.731,3.36,14.311,9.44,19.36,9.44,4.81,0,13.291-6.44,17.75-9.94l.09.03c.63.19,1.46.4,2.41.631,5.4,1.319,14.719,3.159,14.719,3.159s4.09.7,5.141,4.2S139.073,157.121,138.573,157.351Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '  <path'
            '    d="M119.784,139.2c-9.25,7.28-19.38,14.679-24.63,14.679-6.43,0-21.92-10.25-27.451-14.25l2.182-.474c6.279,4.38,20.033,13.153,25.254,13.153,4.85,0,16.852-9.1,22.561-13.566C118.509,138.933,118.922,139.021,119.784,139.2Z"'
            '    transform="translate(-23.449 -25.821)" fill="{secondaryColor}"></path>'
            '</g>'
        ,
        "To neck":
            '<g id="b109d64a-57cd-4c82-8b5b-758c5c322e7f" data-name="Black T-sirt">'
            '  <path'
            '    d="M138.463,157.377c-16.551,7.56-70.551,7.56-87.721,0-.51-.22,2.8-8.4,3.849-11.909s5.141-4.2,5.141-4.2,16.609-3.27,18.31-4.209c.339-.191.7-.411,1.08-.651,2.92,3.69,9.69,4.25,15.5,4.25,5.71,0,12.55-.62,15.48-4.24h.01c.36.24.71.46,1.04.641,1.7.939,18.32,4.209,18.32,4.209s4.09.7,5.141,4.2S138.963,157.147,138.463,157.377Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '</g>'
        ,
    }
    facial_hair = {
        "No": '',
        "Beard":
            '<g id="a333023a-94ec-46ce-9921-940f318d7b2a" data-name="Vrstva 36">'
            '  <path d="M119.349,110.207l-.565.008a6.434,6.434,0,0,1-.016.869c-.288,3.486-4.908,5.124-10.043,4.615a5.637,5.637,0,0,1-9.762.5h0a25.627,25.627,0,0,1-3.675.454,25.644,25.644,0,0,1-3.675-.454h0a5.578,5.578,0,0,1-9.695-.428c-5.135.509-9.822-1.2-10.109-4.682a6.274,6.274,0,0,1-.016-.869l-.566-.008c-.04,1.905-.032,4.232.087,6.854.327,7.373.933,8.3,2.128,9.429,3.947,3.74,17.815,12.093,21.845,12.093s17.9-8.353,21.845-12.093c1.195-1.124,1.8-2.056,2.128-9.429C119.381,114.439,119.389,112.112,119.349,110.207Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '  <path d="M75.6,115.133c-2.147-.77-3.628-2.14-3.785-4.049a6.274,6.274,0,0,1-.016-.869l-.566-.008c-.04,1.905-.032,4.232.087,6.854.327,7.373.933,8.3,2.128,9.429,3.947,3.74,17.815,12.093,21.845,12.093a12.709,12.709,0,0,0,4.216-1.219,40.364,40.364,0,0,1-4.6-1.68C86.647,131.555,75.427,125.044,75.6,115.133Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.lighten.05}"></path>'
            '  <path d="M119.349,110.207l-.565.008a6.434,6.434,0,0,1-.016.869,4.324,4.324,0,0,1-2.384,3.391c-.79,10.617-9.343,17.108-18.287,22.423.469.158.936.325,1.408.466,5.785-2.455,14.609-8.013,17.629-10.874,1.195-1.124,1.8-2.056,2.128-9.429C119.381,114.439,119.389,112.112,119.349,110.207Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.darken.05}"></path>'
            '  <path d="M117.035,107.761s1.814,2.526-1.662,3.658a4.248,4.248,0,0,1-2.185.111c-2.726-.518-5.348-3.243-7.476-4.766-2.662-1.9-7.948-4.2-10.4-1.734-2.458-2.468-7.743-.168-10.406,1.734-2.127,1.523-4.749,4.248-7.475,4.766a4.248,4.248,0,0,1-2.185-.111c-3.477-1.132-1.662-3.658-1.662-3.658-2.717.717-3.154,6.7,3.533,7.85.114.024.228.04.352.056,7.893,1.115,15.872-3.28,17.827-4.344,0,0,9.964,5.459,17.858,4.344.123-.016.238-.032.352-.056C120.189,114.463,119.752,108.478,117.035,107.761Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.lighten.10}"></path>'
            '</g>'
            ,
        "Hipster":
            '<g id="e56f8410-5ebf-488b-a46b-8a367b93fdad" data-name="Vrstva 37">'
            '  <path id="e3d1967f-f88c-459f-ae18-cef4855f7a1b" data-name="vous"'
            '        d="M121.837,97.633a8.274,8.274,0,0,1-1.619,4.458s-2.9,14.549-11.2,15.28c.062.086-4.09.054-9.091-.057-1.676-1.771-6.171-2.589-8.947-.326l-.072.06c-4.55-.176-8.109-.4-7.882-.636-12.222.269-14.978-18.154-14.978-18.154.043.562.1,1.188.167,1.86.178,1.84.405,4.059.68,6.48.633,5.5,1.516,12.067,2.654,17.665-.029-1.159,0-2.315.057-3.469a52.525,52.525,0,0,0,5.018,16.738,23.036,23.036,0,0,0,7.527,6.858,62.241,62.241,0,0,1-3.279-6.008c-.107-.276-.2-.557-.29-.842-.012-.038-.024-.076-.035-.115-.086-.3-.162-.6-.221-.906l0-.015c-.054-.285-.09-.578-.118-.875-.006-.073-.012-.145-.017-.218a8.85,8.85,0,0,1-.019-.954c.2.5.426.988.662,1.479.1.2.194.407.3.61.111.218.231.434.348.651a26.976,26.976,0,0,0,8.913,9.931,17.118,17.118,0,0,0,3.126,1.584,37.368,37.368,0,0,1-2.9-7.05,41.553,41.553,0,0,0,5.031,7.689,13.462,13.462,0,0,0,5.637.17,12.6,12.6,0,0,0,1.847-5.018,20.371,20.371,0,0,1-1.075,4.831,7.782,7.782,0,0,0,2.317-1.044c3.6-2.492,6.558-6.8,8.421-10.992.093,2.776-1.938,4.826-2.114,7.647,4.164-3.685,6.237-9.377,7.361-14.369h0l.006-.031c.137-.609.263-1.211.373-1.794.333-4.019,1.063-8.941.411-13,.67,1.35.6,7.2.5,9.645,1.128-3.624,1.2-12.987,1.666-17.815.251-2.722.487-5.317.654-7.291.105-1.106.186-2.019.237-2.658Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '  <path id="a27fcf95-fab8-4847-bdf4-321027da69e9" data-name="knir"'
            '        d="M110.728,114.744a6.491,6.491,0,0,1-.517-.625H110.2c-2.65-3.374-4.27-10.127-10.488-8.713-1.808.412-3.176.651-4.167.785-.992-.134-2.36-.373-4.168-.785-6.218-1.414-7.838,5.339-10.488,8.713h-.009a6.642,6.642,0,0,1-.517.625c-3.01,3.323-6.534-1.128-6.534-1.128,3.134,10.113,14.453,2.514,15.977.623,1-1.23,3.336-2.047,5.639-1.836v.013c.033,0,.066,0,.1-.006s.066,0,.1.006V112.4c2.3-.211,4.643.606,5.639,1.836,1.524,1.891,12.842,9.49,15.977-.623C117.262,113.616,113.737,118.067,110.728,114.744Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.lighten.05}"></path>'
            '  <path id="f4a95265-14ef-4445-8be4-4e3fc3bbb275" data-name="l"'
            '        d="M90.476,105.546a3.771,3.771,0,0,1,.522-.2c-5.9-1.049-7.513,5.47-10.107,8.772h-.009a6.642,6.642,0,0,1-.517.625c-3.01,3.323-6.534-1.128-6.534-1.128,1.115,3.6,3.266,4.946,5.642,5.116C84.291,116.507,85.551,108.83,90.476,105.546Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.lighten.08}"></path>'
            '  <path id="a229f948-a5aa-482f-bd5d-70a70c54baef" data-name="l2"'
            '        d="M110.728,114.744a6.491,6.491,0,0,1-.517-.625H110.2c-2.65-3.374-4.395-10.057-10.488-8.713a33.431,33.431,0,0,1-3.3.676c7.276.589,9.482,12.155,17.122,10.759a16.335,16.335,0,0,0,2.443-.55,9.236,9.236,0,0,0,1.283-2.674S113.737,118.067,110.728,114.744Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.lighten.10}"></path>'
            '</g>'
            ,
        "Stubble":
            '<g id="aa35e590-232c-4a94-b234-a70867c022d4" data-name="Vrstva 38">'
            '  <path'
            '    d="M109.651,107.412a28.029,28.029,0,0,1-10.077-4.438,8.1,8.1,0,0,1-8.8-.285c-2.206,1.835-9.271,4.526-13.046,5.163-6.895,1.165-8.536-1.6-10.333-7.391,1.193,6.9,2.46,12.96,3.4,14.48,2.573,4.181,12.666,13.623,23.963,14.117,0,0,.047.006.07.006s.047.006.07.006v-.012c11.3-.494,21.392-9.936,23.964-14.117.951-1.546,2.392-7.786,3.778-14.831C120.96,106.048,116.674,108.6,109.651,107.412Zm-12.383,9.349c-.475.053-1.124-1.033-1.615-1.033-.707,0-1.231,1.056-1.9.947-5.184-.851-10.785-3.83-10.785-7.3,0-3.922,6.112-3.059,12.314-3.059s11.145-.863,11.145,3.059C106.429,112.982,102.809,116.135,97.268,116.761Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color}" opacity="0.25"></path>'
            '</g>'
            ,
        "Moustache":
            '<g>'
            '  <path id="f378951f-335b-4af5-a2fc-463ba3b4035f" data-name="c"'
            '        d="M109.775,110.212c3.539,3.149,6.386.2,6.386.2-1.149,4.871-7.423,2.6-11.25.949-.869-.383-1.619-.726-2.144-.949-2.847-1.2-3.533-.6-8.89-1-2.456-.184-5.342.845-8.236,1.881-3.42,1.228-6.841,2.463-9.56,1.707-5.014-1.4-.733-5.964-.733-5.964-1.363,3.2,1.363,4.17,5.677,2.774,4.241-1.379,6.215-6.243,10.883-5.7a9.757,9.757,0,0,0,6.21.167C102.063,103.093,106.737,107.509,109.775,110.212Z"'
            '        transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '  <path id="ac9623d4-6df9-4aec-bc27-d019eaac60bf" data-name="l"'
            '        d="M93.452,104.535a9.759,9.759,0,0,1-1.544-.422c-4.688-.535-6.642,4.321-10.883,5.7a8.68,8.68,0,0,1-4.5.491c.016.017.029.035.045.051C82.615,112.813,89.051,105.325,93.452,104.535Z"'
            '        transform="translate(-23.449 -25.821)" fill="{color.lighten.10}"></path>'
            '  <path id="f4baf1d4-7f12-4e35-b1e0-e72fc7281c37" data-name="color"'
            '        d="M96.819,121.328c-.28,1.056-.579,2.1-.888,3.149.173-1.057.337-2.119.48-3.18-.294-.021-.625-.041-.975-.056-.048.348-.1.694-.15,1.042-.209,1.639-.429,3.276-.507,4.928-.188-1.647-.233-3.311-.289-4.969-.011-.341-.01-.683-.018-1.024-.232,0-.464,0-.69.007a36.237,36.237,0,0,0,.2,4.952,36.594,36.594,0,0,1-.582-4.934,6.915,6.915,0,0,0-1.209.161s1.117,7.941,2.711,11.664c0,0,2.416-7.606,2.711-11.664C97.616,121.4,97.3,121.369,96.819,121.328Z"'
            '        transform="translate(-23.449 -25.821)" fill="{color}"></path>'
            '  <path id="e6874e8b-a487-4af6-8ef9-048c3ea8f5e4" data-name="lightem"'
            '        d="M93.969,121.223c-.062,0-.126,0-.187,0a36.237,36.237,0,0,0,.2,4.952,36.594,36.594,0,0,1-.582-4.934,6.915,6.915,0,0,0-1.209.161s1.117,7.941,2.711,11.664c0,0,.105-.331.269-.873A68.788,68.788,0,0,1,93.969,121.223Z"'
            '        transform="translate(-23.449 -25.821)" fill="{color.lighten.10}"></path>'
            '  <path'
            '    d="M93.036,105.424a3.555,3.555,0,0,1-.468,1.681,5.008,5.008,0,0,1-1.134,1.325,8.085,8.085,0,0,1-2.961,1.688l-.024-.056a9.042,9.042,0,0,0,2.647-1.971c.365-.409.647-.869.965-1.3s.615-.89.917-1.379Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color.lighten.14}"></path>'
            '  <path'
            '    d="M98.2,105.387a5.822,5.822,0,0,1,4.074,1.062,20.492,20.492,0,0,1,3.147,2.82A21.533,21.533,0,0,0,108.537,112a6.988,6.988,0,0,0,3.858,1.316v.059a7.149,7.149,0,0,1-4.019-1.123,21.918,21.918,0,0,1-3.289-2.634,39.99,39.99,0,0,0-3.155-2.674,7.036,7.036,0,0,0-3.733-1.5Z"'
            '    transform="translate(-23.449 -25.821)" fill="{color.lighten.08}"></path>'
            '</g>'
    }
    glasses = {
        **BasePath.glasses,
        "Elegant":
            '<g>'
            '  <path d="M123.476,84.641c-1.747-1.646-6.382-2.837-12.248-2.428-4.534.317-8.62,1.707-10.665,4.858a19.725,19.725,0,0,0-5.407-.6,19.721,19.721,0,0,0-5.407.6C87.7,83.92,83.62,82.53,79.082,82.213c-5.864-.409-10.5.782-12.248,2.428-1.294,1.221-1.319,4.029-.907,6.366.972,5.513,6.859,9.449,13.255,9.449,6.653,0,12.065-4.786,12.065-9.376a5.921,5.921,0,0,0-.274-1.75,15.038,15.038,0,0,1,4.183-.448,15.056,15.056,0,0,1,4.184.448,5.889,5.889,0,0,0-.274,1.75c0,4.59,5.411,9.376,12.064,9.376,6.4,0,12.282-3.936,13.253-9.449C124.8,88.67,124.77,85.862,123.476,84.641ZM79.212,98.554c-5.532,0-10.378-3.453-11.23-7.56-.437-2.112-.676-3.964.865-5.188,1.56-1.241,4.662-2.214,10.335-1.844S89.5,87.153,89.5,91.08,84.9,98.554,79.212,98.554Zm43.118-7.56c-.852,4.107-5.7,7.56-11.232,7.56-5.687,0-10.284-3.549-10.284-7.474s4.642-6.748,10.316-7.118,8.776.6,10.335,1.844C123.006,87.03,122.767,88.882,122.33,90.994Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
    }
    hair = {
        **BasePath.hair,
        "To side":
            '<g>'
            '  <path'
            '    d="M125.849,81.578c4.58-14.262,1.227-27.762-9.929-37.929-9.375-6.575-20.574-11.372-31.111-11.372,3.953,2.31,4.885,4.316,4.885,4.316s-4.383-3.769-16.159-2.33c3.776,1.6,5.51,5.994,5.51,5.994-8.782-5.108-16.532-3.485-16.532-3.485,1.074.827,4.226,1.968,5.583,5.794a27.5,27.5,0,0,0-7.719-.631s4.886,3.047,5.175,8.725c-4.706-1.178-7.513.318-7.513.318s5.057.588,4.557,10.713a66.614,66.614,0,0,0,1.774,20.18,35.849,35.849,0,0,1,3.351,8.74c.062.264.288.487.448.494.276.011.352-.305.333-.574,0,0-4.3-17.133-.906-25.549,3.175-7.883,15.659-10.736,23.9-8.033a10.735,10.735,0,0,0,7.258-.2c4.45-1.745,11.51-3.211,17.162.8,8.176,5.808,9.176,11.933,6.9,32.655a.3.3,0,0,0,.248.319.292.292,0,0,0,.362-.187A37.955,37.955,0,0,1,125.849,81.578Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"></path>'
            '</g>'
        ,
        "Decent":
            '<g>'
            '  <path d="M127.784,82.085c1.107-5.772,1.133-16.516.531-18.276-1.7-4.961-7.584-19.379-32.953-19.42l-.076,0h-.01l-.076,0q-2.825.006-5.332.237c-1.5.136-2.928.33-4.273.572C68.253,48.305,63.706,59.549,62.247,63.809c-.633,1.852-1.18,8.067.759,18.338,1.374.541,3.749,2.729,5.921,11.285l.245.047c-.5-10.111-.56-10.832-.564-12.267s-1.285-7.022-1.039-7.862,2.262-4.82,4.006-5.189,10.164,5.006,19.815,4.232c5.664-.451,9.138-.6,17.3-6.947-1.555,2.625-5.106,8.187-8.838,9.34,9.931.416,17.392-6.994,19.136-6.625s3.756,4.349,4,5.189-1.035,6.424-1.037,7.862.174,4.07.111,11.337c.03.194,0,.372.274.274C124.755,82.3,127.784,82.085,127.784,82.085Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
        ,
        "Formal":
            '<g>'
            '  <path d="M127.225,53.6a.915.915,0,0,0-.161-.907.878.878,0,0,0-.862-.287c-4.9,1.1-10.541-3.162-14.921-5.5C97.6,39.6,71.114,39.995,66.85,59.6c-4.9,4.764-4.011,13.991-2.851,22.649.17,2.658,2.436,10.2,3.871,14.048a.527.527,0,0,0,.6.336.535.535,0,0,0,.425-.542c-.14-4.689-1.824-13.565-1.687-14.908A177.587,177.587,0,0,0,71.1,62.978c8.658-1.413,14.824,1.878,23.591,4,5.588,1.352,17.889.206,23.909-3.875.5,5.557,3.844,14.106,4.526,17.122l-.967,16.214a.423.423,0,0,0,.359.41.419.419,0,0,0,.458-.291C124,93.3,125.517,86.469,126.26,82.252c1.528-8.64,1.12-18.778-3.085-22.043C125.416,58.139,126.124,56.586,127.225,53.6Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
        ,
        "Disheveled":
            '<g>'
            '  <path d="M66.077,56.6c-.555.17-1.636,1.929-3.494,4.679.689-9.652,9.432-16.918,18.234-14.8,0-3.622,5.8-9.289,19.205-6.566-3.1.261-7.453,1.134-8.155,2.179,4.16-1.63,15.256-.957,19.907.7,9.98,3.551,16.5,10.6,15.552,19.159a14.623,14.623,0,0,0-3.549-5.526c-.182.779,8.238,10.062.336,33.134a.429.429,0,0,1-.418.313.375.375,0,0,1-.387-.345c.332-8.665.063-14.834-.968-17.492-.575-3.268-6.982-6.309-11.477-7.62-6.255-1.824-8.483-3.759-10.348-6.22-.214,1.906,2.161,4.459,3.486,6-7.594-.5-9.355-3.422-11.486-5.334.507,3.871,5.166,8.834,10.161,10.668-7.8.1-17.377-3.985-20.254-10.5C81.77,62.3,76.481,69.588,70.751,73.171a7.106,7.106,0,0,0-3.325,5.612,100.067,100.067,0,0,0,.027,11.571.311.311,0,0,1-.313.291.335.335,0,0,1-.357-.242C65.568,85.344,60.015,71.53,66.077,56.6Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
        ,
        "Longer":
            '<g>'
            '  <path d="M130.856,70.759a32.437,32.437,0,0,0-9.123-23.312,39.939,39.939,0,0,0-24.242-11.7c-5.764-.643-18.2,1.5-21.331,10.811-3.226.055-8.42,1.746-12.827,10.825-5.066,10.434-1.059,26.3,5.551,35.911-2.675-12.919-.975-22.989,1.564-29.738a14.982,14.982,0,0,0,7.584,6.113A25.886,25.886,0,0,1,76.16,57.718c4.473,12,17.954,17.17,26.842,17.74-8.721-4.736-12.341-13.125-12.923-16.57,6.318,9.945,19.5,12.5,19.5,12.5-6.11-4.525-6.919-16.2-6.307-16,2.973,9.016,12.473,13.508,13.162,14.167.76.728-1.877-7.144-1.194-6.35,6.248,7.26,9.127,17.262,6.361,30.088,6.224-9.826,6.645-21.14,4.543-30.117C127.153,63.962,129.8,68.435,130.856,70.759Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
        ,
        "Hipster":
            '<g>'
            '  <path d="M114.125,39.347a.3.3,0,0,0-.343-.059.317.317,0,0,0-.185.3c.052,1.713-.385,4.992-2.624,4.24-2.44-.821-3.217-6.086-7.453-9.944a.289.289,0,0,0-.346-.031.293.293,0,0,0-.126.326c.468,1.69.35,4.682-1.078,4.889-1.939.281-6-8.629-6.794-10.359-.073-.161-.176-.184-.258,0C94.143,30.417,90,39.35,88.057,39.067c-1.327-.191-1.241-2.563-.786-4.263a.406.406,0,0,0-.18-.452.4.4,0,0,0-.482.053c-4.017,3.82-5.173,8.621-7.555,9.422-2.215.744-2.667-2.5-2.626-4.184a.341.341,0,0,0-.2-.32.319.319,0,0,0-.37.064C63.841,53.349,62.3,67.854,62.762,71.671c.441,3.6,1.166,6.569,1.987,12.051a18.529,18.529,0,0,1,2.741,5.384.3.3,0,0,0,.582-.127c-.519-5.365-2.594-25.215,12.572-30.967,3.784-1.434,8.662,1.381,14.57,1.154,4.975-.192,9.942-2.322,13.6-1.486,12.82,2.934,13.664,25.934,13.144,31.3a.3.3,0,0,0,.581.127,30.259,30.259,0,0,1,3.226-6.7c.613-5.47,1.061-7.133,1.5-10.736C127.732,67.85,128.508,54.682,114.125,39.347Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
        ,
        "Ups": '',
    }
    head_shape = {
        **BasePath.head_shape,
        "Normal":
            '<g>'
            '  <path d="M134.622,145.559c-1.051-3.5-5.139-4.2-5.139-4.2s-16.613-3.269-18.316-4.2c-.329-.182-.689-.4-1.054-.645-1.534-1-3.23-2.452-3.734-3.794-.392-1.046-.383-4.563-.322-7.029-1.482-.831-3.068-1.7-3.213-1.7-.252,0-17.6,2.255-19.655,2.595,0,.071,0,.146,0,.218a25.242,25.242,0,0,1-.345,5.92c-.624,1.664-3.087,3.5-4.788,4.439s-18.315,4.2-18.315,4.2-4.089.7-5.14,4.2-4.359,11.689-3.854,11.912c17.172,7.563,71.172,7.563,87.727,0C138.979,157.241,135.673,149.064,134.622,145.559Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '  <path d="M109.476,136.07a7.211,7.211,0,0,1-3.1-3.358c-.392-1.046-.383-4.563-.322-7.029-1.482-.831-3.068-1.7-3.213-1.7-.252,0-17.6.536-19.653.877,0,.07,0,1.864,0,1.936,1.823,3.876,15.2,10.2,26.284,9.278Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color.darken.05}"></path>'
            '  <path d="M129.955,83.1c-1.471-2.038-2.984-1.471-4.22-.191.582-3.611.956-6.221.976-6.8.645-17.562-18.264-27.71-31.783-27.674h-.14c-15.935-.043-31.522,10.119-30.877,27.674.023.636.4,3.725.979,7.909-1.349-1.919-3.267-3.486-5.12-.918-3.358,4.651,1.979,14.932,2.708,15.633C63.8,100,67.349,100,67.349,100V100c1.217,7.094,2.52,13.393,3.477,14.948,2.572,4.18,12.665,13.623,23.962,14.116a.678.678,0,0,0,.07.007c.022,0,.047,0,.07,0v-.012c11.3-.493,21.393-9.936,23.964-14.116.957-1.556,2.409-7.861,3.8-14.958,1.115-.057,3.549-.289,4.552-1.256C127.976,98.029,133.314,87.748,129.955,83.1Z"'
            '        transform="translate(-23.449 -25.821)"'
            '        fill="{color}"></path>'
            '</g>'
    }


class FemalePath(BasePath):
    accessory = {
        **BasePath.accessory,
        "Necklace":
            '<g>'
            '  <circle cx="57.96" cy="112.687" r="1.5" fill="{color}"></circle>'
            '  <path'
            '    d="M86.241,142.049a1.666,1.666,0,1,1-1.666-1.666A1.665,1.665,0,0,1,86.241,142.049Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M90.919,144.069a1.809,1.809,0,1,1-1.809-1.811A1.81,1.81,0,0,1,90.919,144.069Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M96.429,144.823a1.945,1.945,0,1,1-1.944-1.945A1.945,1.945,0,0,1,96.429,144.823Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <circle cx="83.718" cy="112.687" r="1.5" fill="{color}"></circle>'
            '  <circle cx="80.552" cy="116.109" r="1.666" fill="{color}"></circle>'
            '  <path'
            '    d="M97.737,144.069a1.808,1.808,0,1,0,1.807-1.811A1.808,1.808,0,0,0,97.737,144.069Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M94.263,144.784c-7.551,0-13.694-3.809-13.694-8.492h.555c0,4.377,5.9,7.937,13.139,7.937s13.14-3.56,13.14-7.937h.555C107.958,140.975,101.816,144.784,94.263,144.784Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '</g>'
        ,
        "Headdress":
            '<g>'
            '  <path'
            '    d="M126.212,70.913c-3.046-36.039-59.33-35.729-62.348,0-.375,4.437.215,10.8,1.093,13.262a2.138,2.138,0,0,1,.533.35c.156-.377-4.48-25.713,21.5-32.088a29.343,29.343,0,0,1,7.558-.8v.016c.163-.008.814-.008.982,0V51.64a29.333,29.333,0,0,1,7.556.8c25.979,6.375,21.344,31.711,21.5,32.088a2.125,2.125,0,0,1,.532-.35C126,81.716,126.586,75.35,126.212,70.913Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"></path>'
            '</g>'
    }

    clothes = {
        **BasePath.clothes,
        "Formal":
            '<g>'
            '  <path'
            '    d="M137.7,155.747c-5.5,7.25-61,12.61-85.9.78-.231-.11-.021-.75.339-1.59.481-1.09,1.331-2.69,2.371-4.67a20.59,20.59,0,0,1,4.25-5.44c3.219-2.98,9.759-5.1,13.36-5.99a87.882,87.882,0,0,0,8.79-2.441c4.319,2.58,8.279,4.471,12.96,4.471,4.519,0,8.88-1.981,13.25-4.59,1.2.63,6.14,1.72,9.85,2.481,2.44.509,9.489,2.759,12.7,5.119a10,10,0,0,1,1.609,1.429A45.356,45.356,0,0,1,137.7,155.747Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <polygon'
            '    points="67.69 113.531 73.437 113.531 77.892 119.237 71.591 136.565 63.457 119.237 67.69 113.531"'
            '    fill="{secondaryColor}"'
            '  ></polygon>'
            '  <path'
            '    d="M84.789,130.6s4.923,6.083,9.632,8.63c-1.231.91-5.9,5.336-7.493,9.615-2.551-2.353-8.574-9.88-8.574-11.252C79.139,135.043,83.024,131.581,84.789,130.6Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="#fff"'
            '  ></path>'
            '  <path'
            '    d="M104.365,130.6s-4.923,6.083-9.632,8.63c.394.589,4.868,3.993,7.493,9.615,2.551-2.353,8.574-9.88,8.574-11.252C110.016,135.043,106.13,131.581,104.365,130.6Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="#fff"'
            '  ></path>'
            '</g>'
        ,
        "Top":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M129.351,143.468a26.1,26.1,0,0,0-7.693,17.379,158.406,158.406,0,0,1-53.635.184c-.05-.821-.392-11.833-8.081-17.789,3.22-2.981,7.953-3.752,10.1-4.342,3.168,4.615,11.237,10.728,22.5,11.187,11.821.481,22.526-4.013,26.55-11.229A30.723,30.723,0,0,1,129.351,143.468Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
        ,
        "Elegant":
            '<g>'
            '  <path'
            '    d="M138.244,155.928c-.129-1.043-2.111-5.137-3.32-7.245-1.115-1.951-5.307-9-13.619-10.638-6.709,7.551-17.332,10.654-26.6,10.663-9.266-.009-19.893-3.112-26.6-10.663-8.312,1.639-12.5,8.687-13.618,10.638-1.209,2.108-3.191,6.2-3.318,7.245h.039a.229.229,0,0,0-.008.041c0,2.786,20.417,7.068,43.107,7.068l.4,0,.4,0c22.69,0,43.108-4.282,43.108-7.068a.229.229,0,0,0-.008-.041Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M94.707,150.226c-10.91-.011-21.059-4-27.309-10.7-.144-.155-.955-.863-1.1-1.021l3.629-.722c.224.252-.237-.243,0,0,5.707,5.9,14.879,9.4,24.777,9.409,9.936-.008,19.146-3.54,24.848-9.486.209-.219-.2.227,0,0l3.441.764c-.137.154-.83.891-.971,1.043C115.777,146.221,105.621,150.215,94.707,150.226Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{secondaryColor}"'
            '  ></path>'
            '</g>'
        ,
        "T-shirt":
            '<g>'
            '  <path'
            '    d="M138.017,155.11c-5.5,7.25-61,12.6-85.9.771-.239-.111-.029-.74.341-1.59.47-1.091,1.319-2.681,2.359-4.67a20.647,20.647,0,0,1,4.25-5.44c3.231-2.981,9.761-5.1,13.361-5.991,1.53-.37,3.11-.759,4.53-1.139l1.84-.51c3.08,5.31,9.769,8.75,16.689,8.75,6.75,0,13.281-3.271,16.46-8.351.611.151,1.25.3,1.891.431,1.17.27,2.35.51,3.439.739,2.451.511,9.491,2.761,12.7,5.12a10.107,10.107,0,0,1,1.62,1.431A45.652,45.652,0,0,1,138.017,155.11Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '  <path'
            '    d="M78.8,136.541l-1.84.51c3.3,5.969,10.63,9.929,18.529,9.929,7.75,0,14.96-3.809,18.351-9.609-.641-.131-1.28-.28-1.891-.431-.509-.109-1-.229-1.46-.349l-.449-.111c-2.89,4.26-8.62,7.121-14.551,7.121-6.179,0-12.109-3.081-14.87-7.621Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{secondaryColor}"'
            '  ></path>'
            '</g>'
        ,
        "Dress":
            '<g>'
            '  <path'
            '    d="M131.44,144.992a9.98,9.98,0,0,0-1.611-1.43,21.98,21.98,0,0,0-7.432-3.542c-12.369,11.568-60.615,12.566-67.873,10.207-.975,1.853-1.772,3.356-2.223,4.4-.365.844-.576,1.479-.341,1.59,24.9,11.83,80.4,6.477,85.9-.777A45.323,45.323,0,0,0,131.44,144.992Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '</g>'
        ,
        "V shirt":
            '<g>'
            '  <path'
            '    id="e24f813a-37d3-47ab-a8be-d2baa17630a2"'
            '    data-name="Blue Blouse"'
            '    d="M138.005,155.529c-5.5,7.25-61,12.611-85.9.781-.041-.01-.06-.041-.081-.081v-.009c.09-.391.18-.781.281-1.17.039-.1.09-.221.139-.33.47-1.09,1.32-2.691,2.37-4.67a20.649,20.649,0,0,1,4.25-5.441c2.581-2.38,7.28-4.219,10.9-5.309,1.769,2.87,5.219,5.849,11.029,8.679,7.91,3.84,11.84,6.51,14.24,9.85,2.4-3.34,6.321-6.01,14.231-9.85,5.739-2.8,9.129-5.75,10.89-8.589,3.129.979,7.339,2.589,9.62,4.269a9.959,9.959,0,0,1,1.609,1.431A45.55,45.55,0,0,1,138.005,155.529Z"'
            '    transform="translate(-23.449 -25.821)"'
            '    fill="{color}"'
            '  ></path>'
            '</g>'
    }
    glasses = {
        **BasePath.glasses,
        "Elegant":
            '<g>'
            '  <path'
            '    fill="{color}"'
            '    d="M123.611,83.418c-1.686-1.568-7.969-1.58-13.77-1.58-4.384,0-8.209,1.664-10.191,4.112a20.4,20.4,0,0,0-9.73.011c-1.981-2.455-5.809-4.123-10.2-4.123-5.8,0-12.084.012-13.769,1.58-1.248,1.162-.748,3.735-.283,5.948C66.609,93.84,73.552,97.7,79.72,97.7c6.414,0,11.633-3.559,11.633-7.93a5.5,5.5,0,0,0-.26-1.656,15.606,15.606,0,0,1,7.377-.01,5.564,5.564,0,0,0-.263,1.666c0,4.371,5.218,7.93,11.634,7.93,6.168,0,13.112-3.858,14.051-8.332C124.357,87.153,124.859,84.58,123.611,83.418ZM79.72,96.547c-5.336,0-9.978-2.949-10.8-6.861-.422-2.012-.653-3.775.832-4.941,1.5-1.182,4.765-1.756,9.968-1.756,5.485,0,9.948,3.039,9.948,6.779S85.205,96.547,79.72,96.547Zm40.922-6.861c-.822,3.912-5.465,6.861-10.8,6.861-5.484,0-9.949-3.041-9.949-6.779s4.465-6.779,9.949-6.779c5.2,0,8.463.574,9.967,1.756C121.3,85.911,121.064,87.674,120.642,89.686Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
    }

    hair = {
        **BasePath.hair,
        "Wavy":
            '<g data-name="Hair__TypeA">'
            '  <path'
            '    data-name="Secondary"'
            '    fill="{color.darken.15}"'
            '    d="M56.576,141.63c1.2.709,2.41,1.367,3.619,2,3.459-2.405,8.842-4.121,11.985-4.9a70.258,70.258,0,0,0,9.08-2.58c1.851-1.021,4.52-3.021,5.2-4.83.348-.913.4-4.468.384-6.977h0V124.3c0-.144,0-.284,0-.42v-.263a44.966,44.966,0,0,1-12.9-8.157,17.143,17.143,0,0,1-4.494-7.6c-.4-1.381-.9-3.16-1.411-5.143-2.574-.08-4.941-4.019-6.48-7.719-1.76-4.234-1.768-8.7,1.228-9.978a4.4,4.4,0,0,1,2.161-.315c-.325-10.527,1.181-37.285,30.039-36.138,28.854-1.147,30.362,25.611,30.038,36.138a4.4,4.4,0,0,1,2.16.315c3,1.277,2.988,5.744,1.226,9.978-1.538,3.7-3.9,7.639-6.478,7.719-.514,1.983-1.01,3.762-1.41,5.143a17.173,17.173,0,0,1-4.5,7.6c-4.238,4.095-10.032,7.006-14.474,8.827-.005.515-.007,1.056-.005,1.6.007,1.275.037,2.571.111,3.6a7.933,7.933,0,0,0,.272,1.83c.287.764,1.613,2.518,4.373,4.315.264.165.629.395.834.511,1.119.62,6.139,1.729,9.9,2.5,2.442.51,9.491,2.76,12.7,5.12a11.189,11.189,0,0,1,1.118.941,31,31,0,0,0,4.5-3.336c5.213-4.728,9.455-11.24,9.742-18.441-7.268,2.824-15.49-3.942-13.82-18.7.949-8.39,2.142-16.834,2.25-25.283.082-6.588-1.071-17.644-6.624-24.758-7.515-9.628-20.846-14.513-32.481-14.513S70.9,44.767,64.326,55.058a51.32,51.32,0,0,0-8,23.9c-.523,8.432.661,16.989,2.246,25.283,3,15.708-8.208,19.614-12.66,18.7C46.2,130.14,50.516,138.054,56.576,141.63Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Primary"'
            '    fill="{color}"'
            '    d="M125.862,61.544a13.322,13.322,0,0,0-10.036-7.164c-7.765-14.459-29.954-10.933-36.7-7.1C66.468,54.48,55.076,71.763,66.4,97.511c.506,1.15,1.008,2.17.832.063-.462-5.623-.484-8.506,1.215-14.694,5.223-19.019,24.315-12,33.241-26.5-1.033,7.666-12.647,12.879-15.125,14.666,6.771-1.3,16.389-5.006,17.927-7.334.674-1.019-1.668,5.494-6.335,8,6.6-1.07,11.092-3.56,13.911-6.527,8.636,9.2,13.615,21.764,11.308,34.037a.338.338,0,0,0,.639.2A56.452,56.452,0,0,0,129,80.1C129.47,73.759,128.806,67.163,125.862,61.544Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Bun":
            '<g data-name="Hair__TypeB">'
            '  <path'
            '    data-name="Ternary"'
            '    fill="{color.darken.18}"'
            '    d="M114.237,48.816c0,10.119-10.642,13.537-21.425,13.537s-19.524-3.2-19.524-13.322c0-8.752,8.74-13.752,19.523-13.752S114.237,38.7,114.237,48.816Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Secondary"'
            '    fill="{color.darken.15}"'
            '    d="M81.027,50.613c-16.387-.8-26.29,23.283-13.79,45.319-7-23.848,12.986-21.819,16.784-34.788C85.524,56.014,85.239,50.818,81.027,50.613Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Primary"'
            '    fill="{color}"'
            '    d="M123.345,95.431c.788-3.242,10.033-27.723-5.533-41.646-8.117-7.26-20.088-11.731-29.949-6.973-7.834,3.781-8.531,13.963-1.292,20.134C94.781,73.946,125.013,68.246,123.345,95.431Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Short":
            '<g data-name="Hair__TypeC">'
            '  <path'
            '    fill="{color}"'
            '    d="M106.133,38.965c-6.242-2.072-21.145-2.211-27.517,4.734a7.717,7.717,0,0,1,3.433-4.464c-3.817.336-8.5,3.58-9.064,7.425-4.773-.4-8.847,3.02-9.781,5.428a10.731,10.731,0,0,1,5.751-1.92c-14.585,9.156-9.369,37.1-.608,46.846-9.156-26.281,9.28-25.434,8.333-39.1C78.317,66.547,91,76.117,101.512,75.58c-5.729-2.334-10.254-10.367-8.531-15.7-.417,2.686,2.91,13.031,18.15,16.16,4.213.866,11.223,3.3,11.215,7.6,1.976-4.469-1.668-18.209-9.719-24.723,16.553,7.5,12.473,30.951,10.805,37.121,2.963-4.695,4.318-9.029,5.924-14.343C130.611,77.52,136.678,49.106,106.133,38.965Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Curly":
            '<g data-name="Hair_TypeD">'
            '  <path'
            '    fill="{color.darken.15}"'
            '    d="M138.143,81.268a6.26,6.26,0,0,0-1.808-12.113,6.26,6.26,0,0,0-5.146-11.113,6.261,6.261,0,0,0-8.07-9.213,6.26,6.26,0,0,0-10.338-6.566,6.26,6.26,0,0,0-11.769-3.388,6.26,6.26,0,0,0-12.247.065,6.26,6.26,0,0,0-11.732,3.514A6.26,6.26,0,0,0,66.765,49.13a6.26,6.26,0,0,0-7.97,9.3A6.259,6.259,0,0,0,53.767,69.6a6.26,6.26,0,0,0-1.678,12.132A6.259,6.259,0,0,0,53.9,93.839a6.26,6.26,0,0,0,5.147,11.113,6.259,6.259,0,0,0,8.068,9.213,6.26,6.26,0,0,0,10.338,6.566,6.248,6.248,0,0,0,9.751,5.616c.009-.716.009-1.425,0-2.066l0-.009c0-.02,0-.137,0-.3,0-.052,0-.107,0-.158v-.11a45.485,45.485,0,0,1-13.253-8.312,17.158,17.158,0,0,1-4.5-7.6c-.4-1.382-.9-3.159-1.41-5.144-2.574-.079-4.941-4.017-6.48-7.717-1.76-4.235-1.768-8.7,1.228-9.98a4.377,4.377,0,0,1,2.161-.313c-.325-10.528,1.181-37.286,30.038-36.14,28.856-1.146,30.364,25.612,30.039,36.14a4.373,4.373,0,0,1,2.16.313c3,1.278,2.988,5.745,1.226,9.98-1.538,3.7-3.9,7.637-6.477,7.717-.514,1.985-1.01,3.762-1.411,5.144a17.16,17.16,0,0,1-4.5,7.6c-4.126,3.986-9.73,6.854-14.123,8.685,0,.207,0,.421,0,.637a6.247,6.247,0,0,0,11.295-4.171,6.26,6.26,0,0,0,10.268-6.676,6.261,6.261,0,0,0,7.971-9.3A6.26,6.26,0,0,0,136.464,93.4a6.26,6.26,0,0,0,1.679-12.131Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="{color}"'
            '    d="M126.3,71.369c-.022-.26-.051-.51-.082-.76-3.734-34.99-58.369-34.719-62.184-.1-.041.28-.07.57-.091.86-.371,4.431.221,10.8,1.1,13.26a2.1,2.1,0,0,1,.532.35c.01-.009.01-.06-.01-.129a16.378,16.378,0,0,1,3.049,6.659.313.313,0,0,0,.361.229.3.3,0,0,0,.281-.309c-.722-4.234-1.31-12.906.968-19.59,24.651,10.291,35.14-8.26,49.7-2.43a50.143,50.143,0,0,1,.815,21.777.323.323,0,0,0,.291.311.327.327,0,0,0,.361-.23c1.389-6.287,3.815-6.636,3.815-6.636a13.487,13.487,0,0,0,.406-1.491.2.2,0,0,0,.009-.071A46.729,46.729,0,0,0,126.3,71.369Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Elegant":
            '<g data-name="Hair_TypeD">'
            '  <path'
            '    fill="{color.darken.15}"'
            '    d="M111.664,63.616c7.131,3.17,13.229,10.83,10.666,24.5a.291.291,0,0,0,.2.325.3.3,0,0,0,.355-.141c1.442-2.7,3.045-3.478,3.581-3.445,4.471-13.644.533-30.1-7.477-36.295-1.1-.853-9.076-6.616-13.8-2.45C101.26,49.583,101.155,58.946,111.664,63.616Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="{color}"'
            '    d="M107.972,47.407c.041-3.935-5.935-7.5-9.984-7.929C85.643,38.17,72.284,42.44,65.307,52.36,54.6,67.586,60.62,92.575,70.987,100.95c-10.333-23.834,1.857-25.489,9.381-30.19,10.041-6.278,7.954-15.148,22.019-13.047C106.062,58.262,107.932,51.026,107.972,47.407Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="{color.darken.15}"'
            '    d="M121.893,113.246a20.2,20.2,0,0,0-1.141-6.74c-.138.492-.272.964-.395,1.387a17.166,17.166,0,0,1-4.5,7.6c-4.168,4.028-9.844,6.911-14.257,8.741-.006.639-.006,1.32,0,2,.012,1.127.044,2.239.11,3.148a7.9,7.9,0,0,0,.27,1.807c.019.048.053.111.08.168a48.258,48.258,0,0,0,5.892-1.09C115.412,128.352,121.893,122.644,121.893,113.246Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="{color.darken.15}"'
            '    d="M86.9,124.2h0v-.054c0-.137,0-.272,0-.4a45.311,45.311,0,0,1-13.122-8.255,17.155,17.155,0,0,1-4.5-7.6c-.256-.885-.554-1.945-.868-3.1a19.857,19.857,0,0,0-1.855,8.457c0,9.4,6.463,15.181,13.94,17.016a52.244,52.244,0,0,0,5.943,1.072c.023-.051.058-.1.077-.154C86.867,130.267,86.924,126.711,86.9,124.2Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Mikado":
            '<g data-name="Hair_TypeF">'
            '  <path'
            '    fill="{color.darken.10}"'
            '    d="M86.544,129.485a47.314,47.314,0,0,0,.249-5.834,44.726,44.726,0,0,1-12.716-8.075,17.153,17.153,0,0,1-4.5-7.6c-.4-1.381-.9-3.159-1.41-5.143-2.573-.079-4.943-4.018-6.481-7.718-1.759-4.234-1.767-8.7,1.229-9.979a4.387,4.387,0,0,1,2.161-.314c-.325-10.527,1.181-37.285,30.038-36.14,28.855-1.145,30.363,25.613,30.039,36.14a4.379,4.379,0,0,1,2.159.314c3,1.278,2.989,5.745,1.227,9.979-1.538,3.7-3.905,7.638-6.478,7.718-.513,1.984-1.009,3.762-1.41,5.143a17.164,17.164,0,0,1-4.5,7.6c-4.3,4.158-10.21,7.1-14.677,8.911a39.241,39.241,0,0,0,.251,5.049,111.321,111.321,0,0,1,30.17,6.875c3.227-18.436,4.076-66.813-7.617-83.885-6.746-9.849-19.379-13.26-30.658-13.26S69.606,44.1,63.462,54.339c-11.558,19.252-10.336,60.15-5.9,81.834A99.364,99.364,0,0,1,86.544,129.485Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    fill="{color}"'
            '    d="M123.373,95.261c.151-3.873,1.763-18.151-8.257-23.141-9.064-4.515-14.08-10.105-14.552-16.623A15.927,15.927,0,0,1,90.2,69.21a15.555,15.555,0,0,0,5.44-9.862c-5.082,9.9-12.724,11.271-20.382,14.417-4.514,1.855-12.225,5.625-9.23,21.5-10.649-25.246,2.743-41.5,9.263-46.122,12.77-10.642,34.993-5.175,41.986,1.692C122.5,55.956,130.283,76.887,123.373,95.261Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
            ,
        "Straight long":
            '<g data-name="Hair_TypeG">'
            '  <path'
            '    fill="{color}"'
            '    data-name="Primary"'
            '    d="M123.373,95.261c.151-3.873,1.763-18.151-8.257-23.141-9.064-4.515-14.08-10.105-14.552-16.623Q95.074,64,94.418,63.646q-.432-.234,1.225-4.3c-5.082,9.9-12.724,11.271-20.382,14.417-4.514,1.855-12.225,5.625-9.23,21.5-10.649-25.246,2.743-41.5,9.263-46.122,12.77-10.642,34.993-5.175,41.986,1.692C122.5,55.956,130.283,76.887,123.373,95.261Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Secondary"'
            '    fill="{color.darken.10}"'
            '    d="M58.929,144.638c3.219-2.981,9.759-5.1,13.36-5.99a70.528,70.528,0,0,0,9.08-2.58c1.85-1.021,4.52-3.021,5.2-4.831a5.218,5.218,0,0,0,.21-1.133c.012-3.273.016-5.826.014-6.453a44.726,44.726,0,0,1-12.716-8.075,17.153,17.153,0,0,1-4.5-7.6c-.4-1.381-.9-3.159-1.41-5.143-2.573-.079-4.943-4.018-6.481-7.718-1.759-4.234-1.767-8.7,1.229-9.979a4.387,4.387,0,0,1,2.161-.314c-.325-10.527,1.181-37.285,30.038-36.14,28.855-1.145,30.363,25.613,30.039,36.14a4.379,4.379,0,0,1,2.159.314c3,1.278,2.989,5.745,1.227,9.979-1.538,3.7-3.905,7.638-6.478,7.718-.513,1.984-1.009,3.762-1.41,5.143a17.164,17.164,0,0,1-4.5,7.6c-4.25,4.108-10.061,7.019-14.508,8.84-.019,2.643.042,5.91.377,6.821.55,1.459,2.4,3.04,4.06,4.13.03,0,.81.51,1.15.7,1.12.619,6.14,1.729,9.9,2.5,2.44.509,9.49,2.759,12.7,5.119a10.013,10.013,0,0,1,1.61,1.43c.483.543.965,1.165,1.441,1.812,1.123-15.881,1.569-43.647.48-58.042-1.114-14.734-3.836-28.7-9.083-36.361-6.746-9.849-19.379-13.26-30.658-13.26S69.606,44.1,63.462,54.339c-5.534,9.218-8.138,23.4-8.862,38.056-.641,12.968.189,39.522,1.764,55.079A22.389,22.389,0,0,1,58.929,144.638Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Ternary"'
            '    fill="{color.darken.30}"'
            '    d="M58.929,144.638c3.219-2.981,9.759-5.1,13.36-5.99a70.528,70.528,0,0,0,9.08-2.58c1.85-1.021,4.52-3.021,5.2-4.831a5.218,5.218,0,0,0,.21-1.133c.012-3.273.016-5.826.014-6.453a44.726,44.726,0,0,1-12.716-8.075,17.153,17.153,0,0,1-4.5-7.6c-.4-1.381-.9-3.159-1.41-5.143-2.573-.079-4.943-4.018-6.481-7.718-1.759-4.234-1.767-8.7,1.229-9.979a4.387,4.387,0,0,1,2.161-.314c-.325-10.527,1.181-37.285,30.038-36.14,28.855-1.145,30.363,25.613,30.039,36.14a4.379,4.379,0,0,1,2.159.314c3,1.278,2.989,5.745,1.227,9.979-1.538,3.7-3.905,7.638-6.478,7.718-.513,1.984-1.009,3.762-1.41,5.143a17.164,17.164,0,0,1-4.5,7.6c-4.25,4.108-10.061,7.019-14.508,8.84-.019,2.643.042,5.91.377,6.821.55,1.459,2.4,3.04,4.06,4.13.03,0,.81.51,1.15.7,1.12.619,6.14,1.729,9.9,2.5,2.44.509,9.49,2.759,12.7,5.119a10.013,10.013,0,0,1,1.61,1.43c.483.543.965,1.165,1.441,1.812-25.361-17.573-.507-37.953-1.6-52.348-1.114-14.734-4.554-25.9-9.8-33.566-6.746-9.85-16.38-12.487-27.659-12.487S67.413,55.477,63.221,66.654c-6.042,16.112-5.371,22.02-4.833,26.45,2.543,20.988,6.351,20.5,6.579,29.405.288,11.269-9.482,16.274-8.6,24.965A22.389,22.389,0,0,1,58.929,144.638Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <g fill="{color.darken.50}" data-name="Fourth">'
            '    <path'
            '      d="M58.929,144.638c3.219-2.981,9.759-5.1,13.36-5.99a70.528,70.528,0,0,0,9.08-2.58c1.85-1.021,4.52-3.021,5.2-4.831a1.96,1.96,0,0,0,.063-.208c.015-.057.028-.125.041-.193,0-.023.01-.043.014-.067.017-.091.032-.19.046-.3l0-.015c.015-.111.029-.23.043-.355h0c.012-3.273.016-5.826.014-6.453a44.726,44.726,0,0,1-12.716-8.075,17.153,17.153,0,0,1-4.5-7.6c-.4-1.381-.9-3.159-1.41-5.143-2.573-.079-4.943-4.018-6.481-7.718-1.759-4.234-1.767-8.7,1.229-9.979a4.387,4.387,0,0,1,2.161-.314c-.253-8.177.607-26.139,14.523-33.218C72.32,54.667,65.76,59.883,63.221,66.654c-6.042,16.112-5.371,22.02-4.833,26.45,2.543,20.988,12.709,28.911,12.937,37.814.289,11.269-15.84,7.865-14.961,16.556h0A22.309,22.309,0,0,1,58.929,144.638Z"'
            '      transform="translate(-23.449 -25.821)"'
            '    ></path>'
            '    <path'
            '      d="M125.158,84.823a4.379,4.379,0,0,1,2.159.314c3,1.278,2.989,5.745,1.227,9.979-1.538,3.7-3.905,7.638-6.478,7.718-.513,1.984-1.009,3.762-1.41,5.143a17.164,17.164,0,0,1-4.5,7.6c-4.25,4.108-10.061,7.019-14.508,8.84v.005c0,.323,0,.656,0,.993v.023c0,.324,0,.65.006.976l0,.119c.008.637.023,1.264.047,1.85,0,.051.005.1.007.153.012.279.027.547.044.8,0,.038.006.072.008.109.017.226.035.439.056.635,0,.035.007.072.011.106.023.2.049.388.078.551.006.035.013.067.019.1a2.767,2.767,0,0,0,.1.4c.55,1.459,2.4,3.04,4.06,4.13.03,0,.81.51,1.15.7a6.569,6.569,0,0,0,1.051.407c4.823-10.326,22.549-26.515,23-41.894a55.46,55.46,0,0,0-9.8-33.566,26.628,26.628,0,0,0-10.456-9.191C124.558,59.046,125.407,76.727,125.158,84.823Z"'
            '      transform="translate(-23.449 -25.821)"'
            '    ></path>'
            '  </g>'
            '</g>'
    }

    head_shape = {
        **BasePath.head_shape,
        "Normal":
            '<g>'
            '  <path'
            '    data-name="Neck"'
            '    fill="{color}"'
            '    d="M51.969,156.337c-.235-.111-.024-.746.342-1.59.474-1.092,1.324-2.683,2.368-4.67a20.584,20.584,0,0,1,4.25-5.439c3.219-2.981,9.759-5.1,13.36-5.99a70.528,70.528,0,0,0,9.08-2.58c1.85-1.021,4.52-3.021,5.2-4.831.369-.97.41-4.929.38-7.44v-2c2.23-.38,10.97-1.06,11.24-1.06.16,0,1.88.95,3.49,1.85-.06,2.68-.07,7.51.35,8.65.55,1.459,2.4,3.04,4.06,4.13.03,0,.81.51,1.15.7,1.12.619,6.14,1.729,9.9,2.5,2.44.509,9.49,2.759,12.7,5.119a10.013,10.013,0,0,1,1.61,1.43,45.323,45.323,0,0,1,6.42,10.443C132.369,162.814,76.869,168.167,51.969,156.337Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Shadow"'
            '    fill="{color.darken.15}"'
            '    d="M106.406,135.556c-2.76-1.8-4.086-3.551-4.373-4.315-.426-1.139-.416-5.973-.35-8.655-1.611-.9-3.335-1.851-3.492-1.851-.275,0-9,1.309-11.232,1.68,0,.236-.007,1.766-.006,1.844C89.334,129.384,97.9,134.384,106.406,135.556Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '  <path'
            '    data-name="Top"'
            '    fill="{color}"'
            '    d="M127.068,85.11a4.379,4.379,0,0,0-2.159-.314c.324-10.527-1.184-37.286-30.039-36.14C66.013,47.51,64.507,74.269,64.832,84.8a4.391,4.391,0,0,0-2.162.314c-3,1.278-2.988,5.745-1.228,9.979,1.539,3.7,3.906,7.639,6.481,7.718.513,1.984,1.009,3.762,1.41,5.143a17.153,17.153,0,0,0,4.5,7.6c4.577,4.423,10.99,7.48,15.53,9.259a15.12,15.12,0,0,0,11.019,0c4.541-1.779,10.956-4.837,15.534-9.261a17.164,17.164,0,0,0,4.5-7.6c.4-1.381.9-3.159,1.41-5.143,2.573-.08,4.94-4.019,6.478-7.718C130.057,90.855,130.064,86.388,127.068,85.11Z"'
            '    transform="translate(-23.449 -25.821)"'
            '  ></path>'
            '</g>'
    }
